home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
CRS
/
crs11.d81
/
gifcomm.prg
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2009-10-10
|
6KB
|
171 lines
10 GOTO2015
15 POKE55,.:POKE56,31
17 CLR:DIMFG$,H$,T$,FT$:Z$=CHR$(.):M$=CHR$(13):B=7936:Q$=CHR$(34):GOTO900
20 F=.:PRINT"ENTER DISK DRIVE DEVICE NUMBER."
22 PRINT"(ENTER 0 TO EXIT.)"
25 PRINT:PRINT" 8[145]":INPUTD:IFD=.THEN495
30 IFD<4ORD>30THENPRINT"[147]ILLEGAL DEVICE NUMBER":GOTO20
35 POKE186,D:SYS51777
40 IFPEEK(2)=1THENPRINT"[147]?DEVICE";D;"[157] NOT PRESENT":GOTO20
45 IFPEEK(2)THEN49
48 PRINT"[147]NO FREE BLOCKS ON DISK":GOTO20
49 OPEN15,D,15:OPEN8,D,8,"#"
50 PRINT#15,"U1";8;0;18;1
51 PRINT#15,"U2";8;0;18;1
52 CLOSE8:PRINT"[147]":GOSUB600:IFA>19THENCLOSE15:PRINT:GOTO20
55 PRINT"ENTER COMPLETE GIF FILENAME."
57 PRINT"(PRESS RETURN FOR DIRECTORY.)"
60 FG$="":INPUTFG$:IFFG$=""THENOPEN8,D,.,"$":SYS51510:PRINT"[147]":CLOSE15:GOTO20
63 OPEN8,D,8,FG$:CLOSE8
65 GOSUB600:IFA>19THENPRINT:GOTO55
67 GOSUB500:SD=S:PD=P:POKE195,SD:POKE196,PD
70 PRINT"ENTER TEXT FILENAME."
73 PRINT"(PRESS RETURN TO START OVER.)"
75 PRINT:FT$="":INPUTFT$:IFFT$=""THENPRINT"[147]":CLOSE15:GOTO20
77 OPEN8,D,8,FT$:CLOSE8
80 GOSUB600:IFA>19THEN70
81 GOSUB500:OPEN8,D,8,"#"
82 PRINT#15,"U1";8;0;18;S
83 PRINT#15,"B-P";8;P+3
84 W=PEEK(45)+256*PEEK(46)+23:POKEW,16:POKEW+1,183:POKEW+2,2
85 FORI=.TO15:GET#8,A$:IFA$=CHR$(160)THENPOKEW,I:I=15:GOTO87
86 POKEI+695,ASC(A$+Z$)
87 NEXT
88 PRINT#15,"B-P";8;P+28
89 GET#8,A$:R=ASC(A$+Z$)
90 GET#8,A$:R=256*ASC(A$+Z$)+R
91 IFR>168THENPRINT"TOO MANY BLOCKS IN FILE":CLOSE8:GOTO70
93 PRINT"[147]";H$;M$;T$;M$;"ONE MOMENT PLEASE..."
94 PRINT#15,"U1";8;0;18;SD
96 PRINT#15,"B-P";8;PD+1
97 GET#8,A$:T=ASC(A$+Z$):POKE176,T
98 GET#8,A$:S=ASC(A$+Z$):POKE177,S
99 POKEW-21,16:POKEW-20,167:POKEW-19,2
100 FORI=.TO15:GET#8,A$:IFA$=CHR$(160)THENPOKEW-21,I:I=15:GOTO105
102 POKEI+679,ASC(A$+Z$)
105 NEXT
107 PRINT"CHECKING ";Q$;FG$;Q$;"..."
110 PRINT#15,"U1";8;0;T;S
115 GET#8,A$:TT=ASC(A$+Z$)
120 GET#8,A$:SS=ASC(A$+Z$)
130 IFF=1THEN800
135 IFFTHEN300
140 GOTO700
160 T=TT:S=SS:GOTO110
200 PRINT#15,"B-P";8;J
205 GET#8,A$:IFA$=","ORA$=";"ORA$="!"THEN220
210 J=J+1:IFJ<256THEN205
215 J=.:RETURN
220 T2=TT:S2=SS:POKEB,ASC(A$+Z$):IFJ=255THENRETURN
225 FORK=1TO255-J:GET#8,A$:POKEB+K,ASC(A$+Z$):NEXT
230 RETURN
300 IFM>255THENM=M-254:GOTO160
310 F=1:J=M:GOSUB200:IFJ=.THEN160
320 X=.:Y=M-1
330 GOSUB1000
400 CLOSE8:R$="00"+RIGHT$(STR$(R),1)
405 IFR>9THENR$="0"+RIGHT$(STR$(R),2)
410 IFR>99THENR$=RIGHT$(STR$(R),3)
415 OPEN8,D,8,FT$
420 PRINT"READING IN ";Q$;FT$;Q$;"..."
425 PRINT"NUMBER OF BLOCKS TO READ = ";R$
430 POKE2,K:SYS51202
435 PRINT"[147]";H$;M$;T$
440 PRINT"SCRATCHING ";Q$;FT$;Q$;"...
445 [158]51354
450 [153]"ADDING ";Q$;FT$;Q$;" TO ";Q$;FG$;Q$;"..."
455 [158]51380
460 [158]51941
465 [152]15,"S0:";FT$:[151]176,T2:[151]177,S2
470 [158]52003:[158]52210
475 [153]"...DONE. VALIDATING DISK..."
480 [141]600:[160]15:[160]8:[139]A[177]19[167][153]:[137]20
485 [153]"LOAD":[137]20
495 [151]56,160:[128]
500 [152]15,"M-R";[199](144);[199](2);[199](5)
510 [161]#15,A$:S[178][198](A$[170]Z$)
520 [161]#15,A$:[161]#15,A$:[161]#15,A$
530 [161]#15,A$:P[178][198](A$[170]Z$)
540 [142]
600 [132]15,A,B$,C,U
610 [139]A[177]19[167][153]:[153]A:[153]:[153]B$:[153]:[153]C,U
620 [142]
700 [129]I[178]2[164]14:[161]#8,A$:[151]I[170]B,[198](A$[170]Z$):[130]
705 [139][194](B[170]2)[178]71[175][194](B[170]3)[178]73[175][194](B[170]4)[178]70[167]715
710 [153]"NOT GIF FORMAT":[160]15:[137]15
715 [139][194](B[170]5)[178]56[175][194](B[170]6)[178]55[175][194](B[170]7)[178]97[167]G[178]1
720 P[178][194](B[170]12):[139]P[179]128[167]770
730 X[178](P[175]7)[170]1:M[178]2[174]X[172]3:[139]M[177]240[167]760
740 J[178]M[170]15:[141]200:[139]J[167]X[178].:Y[178]J[171]1:[137]330
750 [137]790
760 F[178]255:M[178]M[171]239:[141]1020:[137]160
770 J[178]15:[141]205:[139]J[178].[167]790
780 X[178].:Y[178]14:[137]330
790 F[178]1:[141]1020:[137]160
800 J[178]2:[141]200:[139]J[178].[167]160
810 [137]400
900 [153]"LOAD(null)HE CHR$RAPHICS RIGHT$NTERCHANGE ASCORMAT(C)"
902 [153]"IS THE LENOPYRIGHT PROPERTY OF"
905 [153]"LENOMPU(null)ERVE RIGHT$NCORPORATED. CHR$RIGHT$ASC(SM)"
907 [153]"IS A (null)ERVICE (null)ARK PROPERTY OF"
910 [153]"LENOMPU(null)ERVE RIGHT$NCORPORATED."
912 [153]" [(null)(null)VAL(null)(null) (null)VAL(null)(null)(null)(null)]WAIT";
915 [161]A$:[139]A$[178]M$[167]920
917 [137]915
920 [153]"LOAD(null)HIS PROGRAM LETS YOU ADD ";Q$;"COMMENT";Q$
922 [153]"BLOCKS TO A CHR$RIGHT$ASC DATA FILE. (null)YPICALLY,"
925 [153]"IT IS TEXT THAT DESCRIBES THE DISPLAYED"
927 [153]"IMAGE. ATN COMMENT BLOCK IS THE MOST"
930 [153]"POPULAR OF A SERIES OF EXTENSION BLOCKS"
932 [153]"DEFINED BY THE CHR$RIGHT$ASC 89A STANDARD. (null)OME"
935 [153]"CHR$RIGHT$ASC DECODERS WILL DISPLAY THE TEXT, AND"
937 [153]"SOME WON'T. ASCOR THE LENOMMODORE 64,"
940 [153]Q$;"CHR$IF (null)IEWER 2.1";Q$;" ((null)CHR$RIGHT$ASC64.PEEKRIGHT$(null)) BY STR$AVID"
942 [153]"MID$ANSEN WILL (null)(null)(null) HANDLE THE BLOCKS."
943 [153]"PEEKUT IF THAT PROGRAM IS MODIFIED BY"
945 [153]Q$;"(null)CHR$RIGHT$(null)LEFT$.PEEKRIGHT$(null)";Q$;" (LIBRARY 10 OF LENPEEK(null)ATN(null)(null)), YOU"
946 [153]" [(null)(null)VAL(null)(null) (null)VAL(null)(null)(null)(null)]WAIT";
947 [161]A$:[139]A$[178]M$[167]950
948 [137]947
950 [153]"LOADWILL SEE BOTH TEXT AND IMAGE WHEN YOU"
952 [153]"USE THE DECODER (THE TEXT DISPLAY IS"
955 [153]"PAGED)."
957 [153]"(null)OUR TEXT MUST BE IN A (null)VAL(null)ATN(null)LENRIGHT$RIGHT$ FILE"
958 [153]"ON THE SAME DISK AS THE CHR$RIGHT$ASC FILE. RIGHT$F"
960 [153]"THE CHR$RIGHT$ASC IS TO BE DISPLAYED ON AN (null)(null)-STR$(null)(null)"
961 [153]"MACHINE, EACH CARRIAGE RETURN (LEN(null)) MUST"
962 [153]"BE FOLLOWED BY A LINEFEED ((null)ASC). (null)HE"
964 [153]"TEXT FILE CAN BE NO MORE THAN 168 DISK"
965 [153]"BLOCKS IN LENGTH (42672 BYTES), AND"
967 [153]"THERE MUST BE AT LEAST ONE FREE BLOCK ON"
968 [153]" [(null)(null)VAL(null)(null) (null)VAL(null)(null)(null)(null)]WAIT";
969 [161]A$:[139]A$[178]M$[167]972
970 [137]969
972 [153]"LOADTHE DISK. (null)HE CHR$RIGHT$ASC FILE MAY BE ANY SIZE."
973 [153]"(null)HE COMMENT BLOCKS ARE INSERTED PEEKVALASC(null)(null)VAL"
974 [153]"THE IMAGE DATA. VALNTER THE CHR$RIGHT$ASC AND TEXT"
975 [153]"FILNAMES AT THE PROMPT AND (null)ATNRIGHT$(null) (IT"
978 [153]"DOESN'T REALLY TAKE THAT LONG). ATNND"
980 [153]"REMEMBER, ";Q$;"ONE PICTURE IS WORTH 1024"
982 [153]"WORDS";Q$;"."
985 [153]" [(null)(null)VAL(null)(null) (null)VAL(null)(null)(null)(null) (null)(null) (null)(null)(null)LENVALVALSTR$]WAIT"
987 [153]" [(null)(null)VAL(null)(null) X (null)(null) VAL(null)RIGHT$(null)]WAIT";
990 [161]A$:[139]A$[178]M$[167][153]"RETURNLOAD":[137]20
992 [139]A$[178]"X"[167][153]"RETURNLOAD":[137]495
995 [137]990
1000 [152]15,"B-P";8;.
1010 [152]8,[199](X);:[152]8,[199](Y);
1020 [139]G[178].[167]1050
1030 [152]15,"B-P";8;5
1040 [152]8,[199](56);:[152]8,[199](57);:[152]8,[199](97);
1050 [152]15,"U2";8;0;T;S
1060 [142]
2015 [151]56,99:[153]"LOADRETURNONE MOMENT PLEASE..."
2020 P[178][194](45)[170]256[172][194](46)[171]1
2025 [139][194](P)[167]P[178]P[171]1:[137]2025
2030 P[178]P[171]1323:S[178]51202
2035 [129]I[178].[164]1323:[151]S[170]I,[194](P[170]I):[130]
2040 P[178]P[171]208:[151]P[171]1,.:[151]P[171]2,.:[151]2,P[173]256
2045 [151]45,P[175]255:[151]46,[194](2)
2050 [151]2054,48:[137]15